<?php


class UserController extends Controller {
    
    public static function index()
    {
        self::setLayout('index');
        View::assign('zmienna', 'test');
    }
    
    public static function change_password()
    {
        if(!UserModel::isLoggedIn()) 
        { 
            flash_message::setMessage("Dostęp wyłącznie dla zalogowanych użytkowników");
            System::redirect(View::getRoot()."/index/strona-glowna");  
            die('Odświerz strone.');            
        }
        
        $oldPassword = isset($_REQUEST['old_password']) ? $_REQUEST['old_password'] : "";
        $newPassword = isset($_REQUEST['password']) ? $_REQUEST['password'] : "";
        $newPassword2= isset($_REQUEST['password2']) ? $_REQUEST['password2'] : ""; 
        
        $r = UserModel::changePassword($oldPassword, $newPassword, $newPassword2);
        
        switch(intval($r))
        {
            case -2: $msg = 'Stare hasło jest nie poprawne!'; break;
            case 1: $msg = 'Zmieniono hasło'; break;
            default: $msg = 'Wystąpiły problemy podczas zmiany hasła';
        }
        
        $return = array(          
          'message' => $msg,            
        );
        
        echo json_encode($return);
        exit();
    }
    
    public static function save_avatar()
    {      
        
        if ( move_uploaded_file( $_FILES[ 'Filedata' ][ 'tmp_name' ],'./bank/avatar/'.UserModel::isLoggedIn().'.jpg' ) )
	{
            echo ("Avatar udostępniony");
	} 
	else
	{
	    echo ("Wystąpił bład podczas przesyłania plików");
	}
        
        die();
    }
    
    public static function activate()
    {
        if (!isset($_REQUEST['id_user'])||!isset($_REQUEST['email']))
        {
            System::redirect(View::getRoot()."/index/strona-glowna");  
            die('Odświerz strone.');   
        }
        
        if (UserModel::activate($_REQUEST['id_user'], $_REQUEST['email']))
        {
            flash_message::setMessage("Użytkownik został aktywowany. Zapraszamy do korzystania z serwisu.");
            $html  = '<h2>Twoje konto zostało aktywowane</h2><hr><br/>';
            $html .= 'Zapraszamy do korzystania z serwisu: <br/>';
            $html .= '<a href="http://zabij.pl>Przejdź teraz do serwisu</a>';
                   
            Mail::sendPlain($email, "Użytkownik serwisu zabij.pl", $html);
        } else
        {
            flash_message::setMessage("Użytkownik nie może zostać aktywowany.");    
        }
        System::redirect(View::getRoot()."/index/strona-glowna"); 
    }
    
    public static function profile()
    {
        self::setLayout('page');
        if(!UserModel::isLoggedIn()) 
        { 
            flash_message::setMessage("Dostęp wymaga uprawnień administratora!!!");
            self::setContentFile('parts/index/access-denied');          
        }
        else
        {
            include "model/UserProfile.php";

            $d = UserProfileModel::getUserProfile(UserModel::isLoggedIn());
            $u = UserModel::getUser(UserModel::isLoggedIn());
            
            View::assign('profile', $d);
            View::assign('user', $u);
            self::setContentFile('parts/user/profile');
        }
    }
    
    public static function profile_update()
    {
        
        if(!UserModel::isLoggedIn()) 
        { 
            flash_message::setMessage("Dostęp wyłącznie dla zalogowanych użytkowników");
            System::redirect(View::getRoot()."/index/strona-glowna");  
            die('Odświerz strone.');            
        }
        
        include "model/UserProfile.php";
        
        $data = isset($_POST['data']) ? $_POST['data'] : false;
        //token sprawdzic
        if ($data)
        {
            $data['id_user'] = UserModel::isLoggedIn();
            $userData = isset($_POST['user']) ? $_POST['user'] : false;
   
            $r = UserProfileModel::insertOrUpdate($data);
            $r2 = UserModel::updateBirthDate($userData);
            
            if ($r&&$r2) {
                flash_message::setMessage("Zaktualizowano pomyślnie rekord.");
            }
            else
            {
                flash_message::setMessage("Wystąpiły problemy podczas zapisu rekordu.");
            }
            
        }
        else
        {
            flash_message::setMessage("Wystąpiły błedy podczas zapisu");
        }        
        
        System::redirect(View::getRoot()."/uzytkownik/profil");
    }
    
    public static function register()
    {
        
        $r = false;
        if (isset($_POST['data']))
            $r = UserModel::createUser($_POST['data']);
        
        if ($r) {
            flash_message::setMessage("Użytkownik dodany prawidłowo. Sprawdź swoją pocztę, aby aktywować konto.");
        }
        
        System::redirect(View::getRoot()."/index/strona-glowna");    
    }
    
    public static function register_form()
    {
        self::setLayout('page');
        self::setContentFile('parts/user/register');
    }
    
    public static function save()
    {
        
    }
    
    //admin
    public static function update()
    {
        if(!UserModel::isLoggedIn()||!UserModel::checkPrivileges(Privileges::ADMIN)) 
        { 
            flash_message::setMessage("Dostęp wymaga uprawnień administratora!!!");
            System::redirect(View::getRoot().'/index/strona-glowna');
        }
        
        $userData = $_POST['user'];
        $profileData = $_POST['profile'];
               
        //die(print_r($userData)."");
        
        require_once "model/UserProfile.php";
        
        if (UserModel::update($userData))
        {            
             flash_message::setMessage("Rekord zaaktualizowany pomyślnie.");
        }
        else
        {
             flash_message::setMessage("Bład podczas aktualizacji rekordu.");
        }
        $profileData['id_user'] = intval($userData['id_user']);
        
        if (UserProfileModel::insertOrUpdate($profileData))
        {
            
            flash_message::setMessage("Rekord zaaktualizowany pomyślnie.");
        }
        else
        {
            flash_message::setMessage("Bład podczas aktualizacji rekordu.");
        }
        
        System::redirect(View::getRoot()."/index.php?controller=admin&action=users");
    }
    
    public static function login_form()
    {
        self::setLayout('page');
        self::setContentFile('parts/user/login');
    }
    
    public static function login()
    {
        $r = UserModel::login($_POST['login'], $_POST['password']);
        if (!$r)
        {
            flash_message::setMessage("Podałeś błędne dane. Spróbuj ponownie.");
        }
        System::redirect(View::getRoot()."/index/index");
    }
    
    public static function logout()
    {
        UserModel::logout();
        System::redirect(View::getRoot()."/index/strona-glowna");
    }
    
    public static function edit()
    {
        self::setTemplate('admin'); 
        self::setLayout('page');
        
        require_once 'model/UserModel.php';
        require_once "model/UserProfile.php";

        $id = isset($_GET['id']) ? intval($_GET['id']) : 0;
        
        $profile = UserProfileModel::getUserProfile($id);
        $user = UserModel::getUser($id); 
             
        View::assign('profile', $profile);
        View::assign('user', $user);
        
        self::setContentFile('parts/user/editUser');
    }
    
}

?>
